home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’97 / EDO Hack / source code / sources / HackMenus.c < prev    next >
Encoding:
Text File  |  1997-06-28  |  1.6 KB  |  80 lines  |  [TEXT/CWIE]

  1. // --------------------------------------------------------------------------------------
  2. //  HackMenus.c
  3. //
  4. //  Written by Don Arbow and Marc A. Raiser, EveryDay Objects, Inc.
  5. //     in one day - June 26, 1997
  6. // --------------------------------------------------------------------------------------
  7.  
  8. //#include "Subwoofer.h"
  9.  
  10. #include "HackMenus.h"
  11.  
  12. extern Boolean done;
  13.  
  14. void BuildMenuBars(void);
  15. void RunDeskAccesory(short item);
  16. void ChooseApple(short itemNumber);
  17. void ChooseFile(short item);
  18. void MenuDispatch(short menuNumber,short itemNumber);
  19.  
  20. void BuildMenuBars(void)
  21. {
  22.     Handle mbar;
  23.     
  24.     mbar = GetNewMBar(128);
  25.     if (mbar) {
  26.         SetMenuBar(mbar);
  27.         AppendResMenu(GetMenuHandle(APPLE_MENU),'DRVR');
  28.         DrawMenuBar();
  29.     } else {
  30. //        ErrMsg("\pMenubar resouce not loaded.  Program will abort.");
  31.         ExitToShell();
  32.     }
  33. }
  34.  
  35. void RunDeskAccesory(short item)
  36. {
  37.     GrafPtr        savePort;
  38.     short        daRefNum;
  39.     Str255        daName;
  40.     
  41.     GetPort(&savePort);
  42. //MW removed '&' from daName
  43.     GetMenuItemText(GetMenuHandle(APPLE_MENU), item, daName);
  44. //MW removed '&' from daName
  45.     daRefNum = OpenDeskAcc(daName);
  46.     SetPort(savePort);
  47. }
  48.  
  49. void ChooseApple(short itemNumber)
  50. {
  51.     short item;
  52.     
  53.     if (itemNumber == APPLE_ABOUT) {
  54.         item = Alert(ABOUT_BOX_ID,nil);
  55.     } else {
  56.         RunDeskAccesory(itemNumber);
  57.     }
  58. }
  59.  
  60. void ChooseFile(short item)
  61. {
  62.     switch (item) {
  63.         case FILE_QUIT    :    done = true;
  64.                             break;
  65.         default:            break;
  66.     }
  67. }
  68.  
  69. void MenuDispatch(short menuNumber,short itemNumber)
  70. {
  71.     if (menuNumber != 0)
  72.         switch (menuNumber) {
  73.             case APPLE_MENU :     ChooseApple(itemNumber);
  74.                                 break;
  75.             case FILE_MENU :    ChooseFile(itemNumber);
  76.                                 break;
  77.             default :            break;
  78.         }
  79. }
  80.